/**
 * 数组其他方法，非原型上实现
 */

/**
 * 对象数组根据对象的单个属性去重
 * @param {Array} arr 需要去重的数组
 * @param {String} prop 去重的属性名称
 * extension：根据多属性去重，比如发票代码+发票号码，可先用特殊字符将两个属性拼成一个字段作为每个对象的新属性，再根据新属性去重
 */
export const unique = (arr, prop) => {
  const res = new Map()
  return arr.filter(item => !res.has(item[prop]) && res.set(item[prop], 1))
}

/**
 * 等分数组
 * @param {Array} arr 需要等分的数组
 * @param {Number} len 等分数组的长度
 */
export const divideArray = (arr = [], len = 4) => {
  // 先获取总共划分的数组数量 arr.length / len + 1
  let amount = Math.ceil(arr.length / len)
  let newArr = []
  for (let i = 0; i < amount; i++) {
    newArr[i] = arr.slice(i * len, (i + 1) * len)
  }
  return newArr
}
